package com.ruoyi.api.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.api.vo.ProductVo;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author 寻觅
 * @since 2025-06-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("merchant_evaluation")
public class MerchantEvaluation implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id。
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单ID (非空)
     * 数据库字段: order_id
     * 类型: varchar(50)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String orderId;


    /**
     * 订单ID (非空)
     * 数据库字段: order_id
     * 类型: varchar(50)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private Integer merchantId;

    /**
     * 用户头像URL (非空)
     * 数据库字段: user_avatar
     * 类型: varchar(255)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String userAvatar;

    /**
     * 订单创建时间 (非空)
     * 数据库字段: order_time
     * 类型: datetime
     */
    private LocalDateTime orderTime;

    /**
     * 发货时间 (非空)
     * 数据库字段: delivery_time
     * 类型: datetime
     */
    private LocalDateTime deliveryTime;

    /**
     * 收货时间 (非空)
     * 数据库字段: receive_time
     * 类型: datetime
     */
    private LocalDateTime receiveTime;

    /**
     * 评价时间 (非空，默认值: CURRENT_TIMESTAMP)
     * 数据库字段: evaluation_time
     * 类型: datetime
     */
    private LocalDateTime evaluationTime;

    /**
     * 商品评分(1-5分) (允许空)
     * 数据库字段: product_score
     * 类型: decimal(2,1)
     */
    private BigDecimal productScore;

    /**
     * 质量评分(1-5分) (非空)
     * 数据库字段: quality_score
     * 类型: decimal(2,1)
     */
    private BigDecimal qualityScore;

    /**
     * 外观评分(1-5分) (非空)
     * 数据库字段: appearance_score
     * 类型: decimal(2,1)
     */
    private BigDecimal appearanceScore;

    /**
     * 性价比评分(1-5分) (非空)
     * 数据库字段: cost_performance_score
     * 类型: decimal(2,1)
     */
    private BigDecimal costPerformanceScore;

    /**
     * 功能评价 (非空)
     * 数据库字段: function_evaluation
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String functionEvaluation;

    /**
     * 材质描述 (非空)
     * 数据库字段: material_description
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String materialDescription;

    /**
     * 尺寸反馈 (非空)
     * 数据库字段: size_feedback
     * 类型: varchar(255)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String sizeFeedback;

    /**
     * 商品缺陷描述 (非空)
     * 数据库字段: product_defects
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String productDefects;

    /**
     * 服务评分(1-5分) (非空)
     * 数据库字段: service_score
     * 类型: decimal(2,1)
     */
    private BigDecimal serviceScore;

    /**
     * 响应速度评分(1-5分) (非空)
     * 数据库字段: response_speed
     * 类型: decimal(2,1)
     */
    private BigDecimal responseSpeed;

    /**
     * 客服态度评价 (非空)
     * 数据库字段: customer_service_attitude
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String customerServiceAttitude;

    /**
     * 售后服务评价 (非空)
     * 数据库字段: after_sales_service
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String afterSalesService;

    /**
     * 综合评分(1-5分) (允许空)
     * 数据库字段: overall_score
     * 类型: decimal(2,1)
     */
    private BigDecimal overallScore;

    /**
     * 评价正文内容 (非空)
     * 数据库字段: evaluation_content
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String evaluationContent;

    /**
     * 评价图片URLs（多个用逗号分隔） (非空)
     * 数据库字段: evaluation_images
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String evaluationImages;

    /**
     * 评价视频URLs（多个用逗号分隔） (非空)
     * 数据库字段: evaluation_videos
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String evaluationVideos;

    /**
     * 使用场景描述 (非空)
     * 数据库字段: use_scene
     * 类型: varchar(255)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String useScene;

    /**
     * 是否推荐购买(0-否,1-是) (非空)
     * 数据库字段: purchase_recommendation
     * 类型: tinyint(1)
     */
    private Integer purchaseRecommendation;

    /**
     * 商家回复内容 (非空)
     * 数据库字段: reply_content
     * 类型: text
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String replyContent;

    /**
     * 商家回复时间 (非空)
     * 数据库字段: reply_time
     * 类型: datetime
     */
    private LocalDateTime replyTime;

    /**
     * 创建时间 (非空，默认值: CURRENT_TIMESTAMP)
     * 数据库字段: create_time
     * 类型: datetime
     */
    private LocalDateTime createTime;

    /**
     * 更新时间 (非空，默认值: CURRENT_TIMESTAMP，更新时自动刷新)
     * 数据库字段: update_time
     * 类型: datetime
     */
    private LocalDateTime updateTime;

    /**
     * 评价IP地址 (非空)
     * 数据库字段: ip_address
     * 类型: varchar(50)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String ipAddress;

    /**
     * 用户设备信息 (非空)
     * 数据库字段: user_agent
     * 类型: varchar(255)
     * 字符集: utf8mb4
     * 排序规则: utf8mb4_0900_ai_ci
     */
    private String userAgent;
}
